package com.haixiaoke.saas.repository.service;


import com.haixiaoke.saas.repository.pojo.House;
import com.haixiaoke.saas.repository.pojo.HouseInspection;
import com.haixiaoke.saas.repository.pojo.HouseQuitLease;
import com.haixiaoke.saas.repository.pojo.Order;
import com.haixiaoke.saas.repository.vo.HouseInspectionVo;

import java.util.List;

/**
 * 验房信息Service接口
 * 
 * @author haixiaoke
 * @date 2023-04-18
 */
public interface IHouseInspectionService {
    /**
     * 查询验房信息
     * 
     * @param inspectionId 验房信息主键
     * @return 验房信息
     */
    public HouseInspection selectHouseInspectionByInspectionId(Long inspectionId);

    /**
     * 查询验房信息列表
     * 
     * @param houseInspection 验房信息
     * @return 验房信息集合
     */
    List<HouseInspection> selectHouseInspectionList(HouseInspection houseInspection);

    /**
     * 新增用户入住验房信息
     * 
     * @param houseInspectionVo 验房信息Vo
     * @return 结果
     */
    public int inspectionOnCheckIn (HouseInspectionVo houseInspectionVo,String id);

    /**
     * 修改验房信息
     * 
     * @param houseInspection 验房信息
     * @return 结果
     */
    int updateHouseInspection(HouseInspection houseInspection);

    /**
     * 新增验房信息
     *
     * @param houseInspection 验房信息
     * @return 结果
     */
    int insertHouseInspection(HouseInspection houseInspection);

    /**
     * 批量删除验房信息
     * 
     * @param inspectionIds 需要删除的验房信息主键集合
     * @return 结果
     */
    int deleteHouseInspectionByInspectionIds(Long[] inspectionIds);

    /**
     * 删除验房信息信息
     * 
     * @param inspectionId 验房信息主键
     * @return 结果
     */
    int deleteHouseInspectionByInspectionId(Long inspectionId);

    /**
     * 查询验房信息
     */
    HouseInspectionVo selectHouseInspection(HouseInspection houseInspection);

    Order selectOrderByOrderId(String orderId);

    House selectHouseByIdAndStatus(String houseId, int i);

    HouseQuitLease selectHouseQuitLeaseByOrderId(String orderId);

    HouseInspectionVo selectHouseInspectionCleaning(HouseInspection houseInspection, Integer loginType);

    int userInspectionOnCheckOut(HouseInspectionVo houseInspectionVo, String id);

    int enterpriseInspectionOnCheckOut(HouseInspectionVo houseInspectionVo, String id);

    List<HouseInspection> selectHouseInspectionByOrderId(String orderId);

    HouseInspection selectHouseInspectionByOrderIdAndInspectionStatus(String orderId, Integer inspectionStatus);

    HouseInspectionVo selectHouseInspectionListByOrderId(String orderId);
}
